<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
        xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
        xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
        xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
        xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
        xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
        xmlns:xlink="http://www.w3.org/1999/xlink"
        xmlns:dc="http://purl.org/dc/elements/1.1/"
        xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
        xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
        xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0"
        xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
        xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
        xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
        xmlns:math="http://www.w3.org/1998/Math/MathML"
        xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
        xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
        xmlns:ooo="http://openoffice.org/2004/office"
        xmlns:ooow="http://openoffice.org/2004/writer"
        xmlns:oooc="http://openoffice.org/2004/calc"
        xmlns:dom="http://www.w3.org/2001/xml-events"
        xmlns:xforms="http://www.w3.org/2002/xforms"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0"
        xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0"
        xmlns:rpt="http://openoffice.org/2005/report"
        xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2"
        xmlns:xhtml="http://www.w3.org/1999/xhtml"
        xmlns:grddl="http://www.w3.org/2003/g/data-view#"
        xmlns:officeooo="http://openoffice.org/2009/office"
        xmlns:tableooo="http://openoffice.org/2009/table"
        xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0"
        xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0"
                exclude-result-prefixed="field formx tableooo officeooo grddl xhtml of rpt anim smil xsi xsd xforms dom oooc ooow script form math dr3d office style text table draw fo xlink dc meta number presentation svg chart" >

<xsl:output method="text" omit-xml-declaration="yes"/> 

    <!-- STYLES -->
    
     <xsl:template match="office:document-styles/office:styles">
        <!--<xsl:param name="style_name">.styles</xsl:param>-->
        <!-- Atteindre le niveau suivant en passant le paramètre-->             
        <xsl:apply-templates select="node()|@*">
            <!--<xsl:with-param name="style_name" select="$style_name"/>-->
        </xsl:apply-templates>
    </xsl:template>
    

     <xsl:template match="style:default-style">
        <xsl:value-of select="concat('.', @style:family)"/>
        <!-- récupérer les propriétés du texte de default-style -->
        <xsl:apply-templates select="style:text-properties" mode="style"/>
    </xsl:template>
    
    <xsl:template match="style:text-properties" mode="style">       
        <xsl:variable name="family" select="@fo:font-family" />
        <xsl:variable name="size" select="@fo:font-size" />
        <xsl:if test="boolean($family)">
        <xsl:if test="boolean($size)">
        {           
            <xsl:variable name="car">'</xsl:variable>           
            font-family:<xsl:value-of select="translate(@fo:font-family, $car, '')"/>;
            font-size:<xsl:value-of select='translate(@fo:font-size, "t", "x")'/>;
        }
        </xsl:if>
        </xsl:if>
    </xsl:template>

     <xsl:template match="style:style">
        <!-- Permet de vérifier si style name comprend un tiret -->
        <xsl:variable name="iscomposed" select="substring-after(@style:name, '-')" />
        <!-- Permet de vérifier si style:text-properties est défini dans les noeuds enfants donc éviter de créer des styles vides -->
        <xsl:variable name="text_style" select="style:text-properties" />
        <xsl:if test="$text_style != ' '">      
            <xsl:if test="boolean($iscomposed)">
            <xsl:value-of select="concat('.', substring-after(@style:name, '-'))"/><xsl:text>&#10;</xsl:text>
            </xsl:if>
            <xsl:if test="not(boolean($iscomposed))">
            <xsl:value-of select="concat('.', @style:name)"/><xsl:text>&#10;</xsl:text>
            </xsl:if>
            <xsl:apply-templates select="style:text-properties"/>       
        </xsl:if>
    </xsl:template>

     <xsl:template match="style:text-properties">
        <xsl:variable name="family" select="@fo:font-family" />
        <xsl:variable name="size" select="@fo:font-size" />
        <xsl:variable name="weight" select="@fo:font-weight"/>
        <xsl:variable name="color" select="@fo:color"/>
        <xsl:variable name="car">'</xsl:variable>
        {
        <xsl:if test="boolean($family)">
            font-family:<xsl:value-of select="substring-before(translate(@fo:font-family, $car, ''), ' ')"/>;
        </xsl:if>
        <xsl:if test="boolean($weight)">
            font-weight:<xsl:value-of select="@fo:font-weight"/>;
        </xsl:if>
        <xsl:if test="boolean($size)">
            font-size:<xsl:value-of select='translate(@fo:font-size, "t", "x")'/>;      
        </xsl:if>
        <xsl:if test="boolean($color)">
            color:<xsl:value-of select='@fo:color'/>;      
        </xsl:if>
        }
    </xsl:template>
  
<!--  On vire les automatiques -->
    <xsl:template match="office:document-styles/office:automatic-styles">
        <xsl:param name="auto_style_name">.automatic_styles</xsl:param>
    </xsl:template>

    
</xsl:stylesheet>

